package com.engineering.elink.recruitdao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.engineering.elink.co.recruit.JobCo;
import com.engineering.elink.co.recruit.JobSearchCo;
import com.engineering.elink.domain.recruit.Job;
import com.engineering.elink.vo.recruit.CompanyJobVo;
import com.engineering.elink.vo.recruit.DeliveryJobVo;
import com.engineering.elink.vo.recruit.JobVo;

public interface JobMapper {
    int deleteByPrimaryKey(String jobId);

    int insert(Job record);

    int insertSelective(Job record);

    Job selectByPrimaryKey(String jobId);

    int updateByPrimaryKeySelective(Job record);

    int updateByPrimaryKey(Job record);
    
	JobVo selectInfo(@Param("jobId") String jobId,@Param("userId") String userId);
	
	int updateBatchByDeleteStatus(String[] jobIds);
	
	int updateBatchByRefreshTime(String[] jobIds);

	List<JobVo> selectList(@Param("co")JobCo co,@Param("userId")String userId);

	int selectCount(@Param("co")JobCo co,@Param("userId")String userId);

	List<CompanyJobVo> selectJobByCompanyId(@Param("jobId")String jobId,@Param("companyId") String companyId,@Param("count") Integer count);
	
	List<CompanyJobVo> selectSameJob(@Param("jobId") String jobId,@Param("jobName") String jobName,@Param("count") Integer count);
	
	List<DeliveryJobVo> selectMyDeliveryJobList(Map<String,Object> map);

	int countMyDeliveryJob(Map<String,Object> map);
	
	List<DeliveryJobVo> selectMyCollectionJobList(Map<String,Object> map);
	
	int countMyCollectionJob(Map<String,Object> map);
	
	List<DeliveryJobVo> selectSearchJobList(@Param("co")JobSearchCo co);
	
	int countSearchJob(@Param("co")JobSearchCo co);
	
}